home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 February: Technology Seed / Mac Tech Seed Feb '97.toast / OpenDoc 1.2b2c1 / OpenDoc / Interfaces / CPlusPlus / LinkB.xh < prev    next >
Encoding:
Text File  |  1997-02-13  |  7.4 KB  |  318 lines  |  [TEXT/MPS ]

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: LinkB.xh.
  5.  * Generated using:
  6.  *     SOM Precompiler somipc: 2.18
  7.  *     SOM Emitter emitxh.dll: 2.33
  8.  */
  9.  
  10. /*
  11.  * 
  12.  *  Classes defined in this interface
  13.  * 
  14.  */
  15.  
  16.  
  17. #ifndef SOM_ODBaseLink_xh
  18. #define SOM_ODBaseLink_xh
  19.  
  20. class ODBaseLink;
  21.  
  22. #define ODBaseLink_MajorVersion 1
  23. #define ODBaseLink_MinorVersion 0
  24.  
  25. /* C++ SOM defs */
  26. #include <somcls.xh>
  27. #include <somcm.xh>
  28.  
  29. /* C++ parent defs */
  30. #ifndef SOM_ODPersistentObject_xh
  31. #include <PstObj.xh>
  32. #endif
  33.  
  34. #ifndef ODBaseLink_API
  35. #define ODBaseLink_API
  36. /*
  37.  * -- The Class API
  38.  */
  39.  
  40. /*
  41.  * Start of user-defined types:
  42.  */
  43. class SOMClass;
  44. class SOMObject;
  45. class ODFrame;
  46. class ODFacet;
  47. class ODObject;
  48. class ODExtension;
  49. class ODRefCntObject;
  50. class ODPersistentObject;
  51. class ODStorageUnit;
  52. class ODBaseLink;
  53. class ODLinkSource;
  54. class ODPart;
  55. class ODDraft;
  56.  
  57. /*
  58.  * End of user-defined types.
  59.  */
  60.  
  61. #ifdef OLDIBMSOMAPISUPPORT
  62. #define ODBaseLinkCClassData ODBaseLinkClassData
  63. #define ODBaseLinkNewClass(major,minor) somNewVersionedClassReference(ODBaseLink,major,minor)
  64. #endif
  65.  
  66. /* define xxxMetaClass macro to facilitate (cls ## MetaClass) */
  67. #define ODBaseLinkMetaClass SOMClass
  68.  
  69. #if PRAGMA_ALIGN_SUPPORTED
  70. #  pragma options align=power
  71. #endif
  72.  
  73. /* The API to the ODBaseLink class object, and the methods it introduces. */
  74. SOMEXTERN struct ODBaseLinkClassDataStructure {
  75. #ifdef OLDIBMSOMAPISUPPORT
  76.     SOMClass            *classObject;    /* always zero, use somNewClassReference instead */
  77. #else
  78.     long zero;
  79. #endif
  80.     somStaticClassInfo *sci;
  81.     somDToken        instanceDataToken;
  82.     long reserved [3];
  83.     somMToken Lock;
  84.     somMToken Unlock;
  85.     somMToken GetContentStorageUnit;
  86.     somMToken RegisterDependent;
  87.     somMToken UnregisterDependent;
  88.     somMToken GetUpdateID;
  89.     somMToken GetChangeTime;
  90.     somMToken ShowSourceContent;
  91.     somMToken ShowLinkDestinationInfo;
  92.     somMToken reserved1;
  93.     somMToken reserved2;
  94.     somMToken reserved3;
  95.     somMToken reserved4;
  96.     somMToken reserved5;
  97.     somMToken reserved6;
  98.     somMToken reserved7;
  99. } SOMDLINK ODBaseLinkClassData;
  100.  
  101. #if PRAGMA_ALIGN_SUPPORTED
  102. #  pragma options align=reset
  103. #endif
  104.  
  105. #if !defined(ODBaseLink_Class_Source) && !defined(SOM_Module_linkb_Source)
  106. #if PRAGMA_IMPORT_SUPPORTED
  107. #pragma import list ODBaseLinkClassData
  108. #endif
  109. #endif
  110.  
  111.  
  112. /*
  113.  * -- Typedefs and inline method declarations for left path inherited methods
  114.  * -- are omitted because this compilation had -museinheritedmethods in effect
  115.  */
  116.  
  117.  
  118. /*
  119.  * -- Typedefs for ODBaseLink Method Procedures
  120.  */
  121. SOMEXTERN {
  122. typedef ODBoolean   (* SOMLINK somTD_ODBaseLink_Lock)(ODBaseLink *somSelf, Environment *ev,
  123.         ODULong wait,
  124.         ODLinkKey* key);
  125. typedef void   (* SOMLINK somTD_ODBaseLink_Unlock)(ODBaseLink *somSelf, Environment *ev,
  126.         ODLinkKey key);
  127. typedef ODStorageUnit*   (* SOMLINK somTD_ODBaseLink_GetContentStorageUnit)(ODBaseLink *somSelf, Environment *ev,
  128.         ODLinkKey key);
  129. typedef void   (* SOMLINK somTD_ODBaseLink_RegisterDependent)(ODBaseLink *somSelf, Environment *ev,
  130.         ODPart* clientPart,
  131.         ODUpdateID id);
  132. typedef void   (* SOMLINK somTD_ODBaseLink_UnregisterDependent)(ODBaseLink *somSelf, Environment *ev,
  133.         ODPart* clientPart);
  134. typedef ODUpdateID   (* SOMLINK somTD_ODBaseLink_GetUpdateID)(ODBaseLink *somSelf, Environment *ev);
  135. typedef ODTime   (* SOMLINK somTD_ODBaseLink_GetChangeTime)(ODBaseLink *somSelf, Environment *ev);
  136. typedef void   (* SOMLINK somTD_ODBaseLink_ShowSourceContent)(ODBaseLink *somSelf, Environment *ev);
  137. typedef ODBoolean   (* SOMLINK somTD_ODBaseLink_ShowLinkDestinationInfo)(ODBaseLink *somSelf, Environment *ev,
  138.         ODFacet* facet,
  139.         ODLinkInfo* info,
  140.         ODBoolean changesAllowed,
  141.         ODLinkInfoResult* infoResult);
  142. }
  143.  
  144. #endif /* ODBaseLink_API */
  145.  
  146.  
  147. /*
  148.  * -- This emitter treats Method Tokens as Thunks by default.
  149.  * -- Use the sc modifier "nothunks" to change this default
  150.  */
  151. #undef somresolve_
  152. #define somresolve_(obj,mToken) ((somMethodProc*)((void)obj, mToken))
  153.  
  154. /*
  155.  * -- The C++ Wrapper Class for ODBaseLink
  156.  */
  157. class ODBaseLink : public ODPersistentObject
  158. {
  159. public:
  160.  
  161. // ODBaseLink::new registers use of the class object, and then uses somNew
  162. // to allocate memory and load the object method table pointer. 
  163. void *operator new(size_t size)
  164. {
  165.     SOM_IgnoreWarning(size);
  166.     // Allocate memory using the default allocator for ODBaseLink, and
  167.     // clear mem & set method table pointer, call basic initialization
  168. #ifdef SOMCHKNULL
  169.     void * __somResult = (void *)
  170.       somNewObject(ODBaseLink);
  171.     SOMCHKNULL(__somResult);
  172.     return __somResult;
  173. #else
  174.     return (void*) somNewObject(ODBaseLink);
  175. #endif
  176. }
  177.  
  178. // ODBaseLink::delete uses the default deallocator for the object's class.
  179. void operator delete(void * obj)
  180. {
  181.     if (obj) {
  182.         SOM_Resolve(obj,SOMObject,somFree)
  183.            ( (SOMObject*) obj );
  184.     }
  185. }
  186.  
  187. /* method: Lock */
  188. ODBoolean   Lock(Environment *ev,
  189.         ODULong wait,
  190.         ODLinkKey* key)
  191. {
  192.    #ifdef SOMCHKEXCEPT
  193.    ODBoolean __somResult = 
  194.       SOM_ResolveD(this,ODBaseLink,ODBaseLink,Lock)
  195.     (this,ev,wait,key);
  196.       SOMCHKEXCEPT;
  197.    return __somResult;
  198. #else
  199.    return SOM_ResolveD(this,ODBaseLink,ODBaseLink,Lock)
  200.     (this,ev,wait,key);
  201. #endif
  202. }
  203.  
  204. /* method: Unlock */
  205. void   Unlock(Environment *ev,
  206.         ODLinkKey key)
  207. {
  208.    SOM_ResolveD(this,ODBaseLink,ODBaseLink,Unlock)
  209.     (this,ev,key);
  210. #ifdef SOMCHKEXCEPT
  211.       SOMCHKEXCEPT;
  212. #endif
  213. }
  214.  
  215. /* method: GetContentStorageUnit */
  216. ODStorageUnit*   GetContentStorageUnit(Environment *ev,
  217.         ODLinkKey key)
  218. {
  219.    #ifdef SOMCHKEXCEPT
  220.    ODStorageUnit* __somResult = 
  221.       SOM_ResolveD(this,ODBaseLink,ODBaseLink,GetContentStorageUnit)
  222.     (this,ev,key);
  223.       SOMCHKEXCEPT;
  224.    return __somResult;
  225. #else
  226.    return SOM_ResolveD(this,ODBaseLink,ODBaseLink,GetContentStorageUnit)
  227.     (this,ev,key);
  228. #endif
  229. }
  230.  
  231. /* method: RegisterDependent */
  232. void   RegisterDependent(Environment *ev,
  233.         ODPart* clientPart,
  234.         ODUpdateID id)
  235. {
  236.    SOM_ResolveD(this,ODBaseLink,ODBaseLink,RegisterDependent)
  237.     (this,ev,clientPart,id);
  238. #ifdef SOMCHKEXCEPT
  239.       SOMCHKEXCEPT;
  240. #endif
  241. }
  242.  
  243. /* method: UnregisterDependent */
  244. void   UnregisterDependent(Environment *ev,
  245.         ODPart* clientPart)
  246. {
  247.    SOM_ResolveD(this,ODBaseLink,ODBaseLink,UnregisterDependent)
  248.     (this,ev,clientPart);
  249. #ifdef SOMCHKEXCEPT
  250.       SOMCHKEXCEPT;
  251. #endif
  252. }
  253.  
  254. /* method: GetUpdateID */
  255. ODUpdateID   GetUpdateID(Environment *ev)
  256. {
  257.    #ifdef SOMCHKEXCEPT
  258.    ODUpdateID __somResult = 
  259.       SOM_ResolveD(this,ODBaseLink,ODBaseLink,GetUpdateID)
  260.     (this,ev);
  261.       SOMCHKEXCEPT;
  262.    return __somResult;
  263. #else
  264.    return SOM_ResolveD(this,ODBaseLink,ODBaseLink,GetUpdateID)
  265.     (this,ev);
  266. #endif
  267. }
  268.  
  269. /* method: GetChangeTime */
  270. ODTime   GetChangeTime(Environment *ev)
  271. {
  272.    #ifdef SOMCHKEXCEPT
  273.    ODTime __somResult = 
  274.       SOM_ResolveD(this,ODBaseLink,ODBaseLink,GetChangeTime)
  275.     (this,ev);
  276.       SOMCHKEXCEPT;
  277.    return __somResult;
  278. #else
  279.    return SOM_ResolveD(this,ODBaseLink,ODBaseLink,GetChangeTime)
  280.     (this,ev);
  281. #endif
  282. }
  283.  
  284. /* method: ShowSourceContent */
  285. void   ShowSourceContent(Environment *ev)
  286. {
  287.    SOM_ResolveD(this,ODBaseLink,ODBaseLink,ShowSourceContent)
  288.     (this,ev);
  289. #ifdef SOMCHKEXCEPT
  290.       SOMCHKEXCEPT;
  291. #endif
  292. }
  293.  
  294. /* method: ShowLinkDestinationInfo */
  295. ODBoolean   ShowLinkDestinationInfo(Environment *ev,
  296.         ODFacet* facet,
  297.         ODLinkInfo* info,
  298.         ODBoolean changesAllowed,
  299.         ODLinkInfoResult* infoResult)
  300. {
  301.    #ifdef SOMCHKEXCEPT
  302.    ODBoolean __somResult = 
  303.       SOM_ResolveD(this,ODBaseLink,ODBaseLink,ShowLinkDestinationInfo)
  304.     (this,ev,facet,info,changesAllowed,infoResult);
  305.       SOMCHKEXCEPT;
  306.    return __somResult;
  307. #else
  308.    return SOM_ResolveD(this,ODBaseLink,ODBaseLink,ShowLinkDestinationInfo)
  309.     (this,ev,facet,info,changesAllowed,infoResult);
  310. #endif
  311. }
  312.  
  313. };   /* ODBaseLink */
  314.  
  315.  
  316.  
  317. #endif       /* SOM_ODBaseLink_xh */
  318.